package com.wanxi.exception;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MyException {
    public static void main(String[] args) {
        String pattern = "";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
        simpleDateFormat.format(new Date());
//        Date date = simpleDateFormat.parse("20022222-22-2");
//        String str=null;
//        if(str==null){
//            throw new MyNullPointException("抛出异常，一般是因为某个元素为null导致");
//        }
//        System.out.println(str.length());
//        空指针NullPointerException
//        System.out.println("aaaa");
//        getName();
        bb();
    }

    private static void getName() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        simpleDateFormat.format(new Date());
        try {
            String str = null;
            str.length();

        } catch (NullPointerException e) {
            e.printStackTrace();
            System.out.println("---------");
        }
        try {
            Date date = simpleDateFormat.parse("20022222/22-2");
            System.out.println(date);
        } catch (ParseException e) {
            e.printStackTrace();
//            日志文件
            System.out.println("+++++++++");
        }
        System.out.println("aaa");
    }

    public void aa() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        simpleDateFormat.format(new Date());
        try {
            String str = null;
            str.length();
            Date date = simpleDateFormat.parse("20022222/22-2");
            System.out.println(date);
        } catch (Exception e) {
            e.printStackTrace();
//            日志文件
            System.out.println("+++++++++");
        }

    }

    public static void bb() {
//        IO流，如果这里出现循环？每次都会创建IO流对象，
//        io流创建如果不关闭则会在内存里面开辟空间
//        所以最好每次用了都要关闭流
//        那么怎么保证我们的io流必须关闭呢？inputStream.close();怎么保证这行代码必须执行
//        finally在try catch里面表示最终会执行
        InputStream inputStream = null;
//        int i = 10 / 0;
        try {
            inputStream = new FileInputStream("aa");
//            inputStream.close();
//            System.exit(0);
        } catch (FileNotFoundException e) {
            System.out.println(e+"+++++++++");
            System.out.println(e.getMessage() + "-----------");
//            e.printStackTrace();

        } finally {
            try {
                if (inputStream != null) {
                    inputStream.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

}
